RxJava-তে অপারেটর হলো ডেটা স্ট্রিম ম্যানিপুলেট করার টুল। এগুলো ডেটা প্রসেসিং সহজ করে এবং রিয়েক্টিভ প্রোগ্রামিংয়ে অনেক ক্ষমতা যোগ করে। নিচে কিছু গুরুত্বপূর্ণ অপারেটরের ব্যাখ্যা এবং উদাহরণ দেয়া হলো।
map
অপারেটরimport io.reactivex.rxjava3.core.Observable;
public class MapExample {
public static void main(String[] args) {
Observable<Integer> numbers = Observable.just(1, 2, 3, 4, 5);
numbers.map(number -> number * 2)
.subscribe(result -> System.out.println("Mapped value: " + result));
}
}
আউটপুট:
Mapped value: 2
Mapped value: 4
Mapped value: 6
Mapped value: 8
Mapped value: 10
flatMap
অপারেটরimport io.reactivex.rxjava3.core.Observable;
public class FlatMapExample {
public static void main(String[] args) {
Observable<String> users = Observable.just("User1", "User2");
users.flatMap(user -> Observable.just(user + " - Data1", user + " - Data2"))
.subscribe(data -> System.out.println("FlatMapped value: " + data));
}
}
আউটপুট:
FlatMapped value: User1 - Data1
FlatMapped value: User1 - Data2
FlatMapped value: User2 - Data1
FlatMapped value: User2 - Data2
filter
অপারেটরimport io.reactivex.rxjava3.core.Observable;
public class FilterExample {
public static void main(String[] args) {
Observable<Integer> numbers = Observable.just(1, 2, 3, 4, 5, 6);
numbers.filter(number -> number % 2 == 0)
.subscribe(result -> System.out.println("Filtered value: " + result));
}
}
আউটপুট:
Filtered value: 2
Filtered value: 4
Filtered value: 6
reduce
অপারেটরimport io.reactivex.rxjava3.core.Observable;
public class ReduceExample {
public static void main(String[] args) {
Observable<Integer> numbers = Observable.just(1, 2, 3, 4, 5);
numbers.reduce((sum, number) -> sum + number)
.subscribe(result -> System.out.println("Reduced value: " + result));
}
}
আউটপুট:
Reduced value: 15
অপারেটর | ব্যবহার | কাজ |
---|---|---|
map | ডেটা রূপান্তর | ডেটার প্রতিটি উপাদানের উপর ফাংশন প্রয়োগ। |
flatMap | ডেটা ফ্ল্যাট করা | এক Observable থেকে একাধিক Observable তৈরি। |
filter | শর্ত অনুযায়ী ফিল্টার | নির্দিষ্ট শর্তে মিল রেখে ডেটা নির্বাচন। |
reduce | ডেটা কম্পাইল করা | সমস্ত ডেটা একক ফলাফলে রূপান্তর। |
map
এবং flatMap
খুবই শক্তিশালী, তবে ভুল ব্যবহারে কমপ্লেক্সিটি বাড়তে পারে।filter
ব্যবহার করে শুধুমাত্র প্রয়োজনীয় ডেটা স্ট্রিমে রাখা সহজ।reduce
বড় ডেটা প্রসেসিংয়ের জন্য ভালো তবে এটি শুধুমাত্র Finite Observable-এর জন্য কাজ করে।আপনার যদি এই বিষয়ে আরও কিছু জানার প্রয়োজন হয়, বলুন! 😊
Read more